/*
2021-7-20
https://www.acwing.com/problem/content/175/ 
*/
#include<iostream>
#include<cstring>
#include<algorithm>

using namespace std;
const int N=1010,M=N*N;
typedef pair<int,int>PII;
char g[N][N];
int n,m;
int dist[N][N];
PII q[M];

void bfs()
{
    memset(dist,-1,sizeof dist);
    int hh=0,tt=-1;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            if(g[i][j]=='1')
            {
                dist[i][j]=0;
                q[++tt]={i,j};
            }
    
    
    
    int dx[]={1,-1,0,0},dy[]={0,0,1,-1};
    while(hh<=tt)
    {
        auto t=q[hh++];
        for(int i=0;i<4;i++)
        {
            int a=t.first+dx[i],b=t.second+dy[i];
            if(a<0 || a>=n || b<0 || b>=m) continue;
            if(dist[a][b]!=-1) continue;
            dist[a][b]=dist[t.first][t.second]+1;
            q[++tt]={a,b};
        }
    }
    
}

int main()
{
    cin>>n>>m;
    
    for(int i=0;i<n;i++) cin>>g[i];
    bfs();
    
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
            cout<<dist[i][j]<<' ';
        puts("");
    }
        
    return 0;
}
